﻿using NP.BPMReportPlatform.SystemSettings.Dto;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace NP.BPMReportPlatform.SystemSettings
{
    /// <summary>
    /// 审批配置接口
    /// </summary>
    public interface IApproveConfigurationAppService : IApplicationService
    {
        /// <summary>
        /// 查询数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PagedResultDto<GetApproveConfigurationOutput>> GetAllAsync(GetApproveConfigurationInput input);

        /// <summary>
        /// 导出数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<List<GetApproveConfigurationOutput>> ExportAsync(GetApproveConfigurationInput input);

        /// <summary>
        /// 保存审批配置
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task SaveAsync(SaveApproveConfigurationInput input);

        /// <summary>
        /// 删除审批配置
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DeleteAsync(int id);

        /// <summary>
        /// 一键批量删除审批配置
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task BatchDeleteAsync(GetApproveConfigurationInput input);

        /// <summary>
        /// 批量导入
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        Task<ImportResultExt<ImportApproveConfigurationTemplate>> ImporterExcel(byte[] bytes);
    }
}
